package genosAgape.controle;

import java.sql.SQLException;
import java.util.List;

import genosAgape.dao.DieDao;
import genosAgape.interfaces.AbstractControl;
import genosAgape.vo.*;

public class DieControle implements AbstractControl {

	private DieDao dieDao = new DieDao();
	
	
	/**
	 * Metod utilizado para inserir um DIE no banco de dados
	 * @param die
	 * @throws Exception
	 */
	public void inserirDie(Die die) throws Exception{		
		this.dieDao.inserir(die);
	}
	
	/**
	 * Metod utilizado para alterar um DIE existente no banco de dados
	 * @param die
	 * @throws Exception
	 */
	public void alterarDie(Die die) throws Exception{
		this.dieDao.alterar(die);
	}
	
	/**
	 * Metod utilizado para excluir um DIE do existente do banco de dados
	 * @param idDie
	 * @throws Exception
	 */
	public void excluirDie(int idDie) throws Exception{
		this.dieDao.remover(idDie);
	}
	
	/**
	 * Metodo utilizado para listar todos os dies de acordo
	 * com o nome passado e as colunas que deseja retorna na consulta
	 * 
	 * @param nome
	 * @return uma lista de dies existentes com o nome passado
	 * @throws Exception 
	 */
	public  List<Die> listarDies(Object arg) throws Exception{
		return this.dieDao.listar(arg);
	}
	
	/**
	 * Metodo utilizado para buscar um die especifico
	 * 
	 * @param codigo
	 * @return um die com base no codigo informado
	 * @throws Exception 
	 */
	public Die listarDie(int codigo) throws Exception{
		return dieDao.listaDie(codigo);
	}
	
	public List<Die> listarTodos() throws Exception{
		return dieDao.listarTodos();
	} 
	
	
	public List<String> list(String value) {
		// TODO Auto-generated method stub
		return null;
	}
	
	public List<Integer> listarCodigos(Integer value) throws SQLException, Exception{
		return this.dieDao.getCodigosDies(value);
	}
}